package model

// 定义数据模型
type IndexData struct {
	Code       string  `json:"code" validate:"required"`
	ClosePoint float64 `json:"closePoint" validate:"required"`
	Date       string  `json:"date" validate:"required"`
}

type IndexCode struct {
	Code  string `json:"code" validate:"required"`
	Name  string `json:"name" validate:"required"`
	SecId string `json:"secid" validate:"required"`
}

// Profit 每日盈亏，使用正确的字段名
type Profit struct {
	Date       string  `json:"date"`       // 保持不变
	ClosePoint float64 `json:"closePoint"` // 修改为camelCase格式
	Value      float64 `json:"value"`      // 保持不变
}

// Trade 交易记录，使用正确的字段名
type Trade struct {
	BuyDate         string  `json:"buyDate"`         // 保持不变
	SellDate        string  `json:"sellDate"`        // 保持不变
	BuyClosePoint   float64 `json:"buyClosePoint"`   // 保持不变
	SellClosePoint  float64 `json:"sellClosePoint"`  // 保持不变
	ProfitLossRatio float64 `json:"profitLossRatio"` // 保持不变
}

// AnnualProfit 年度盈亏，保持原有格式
type AnnualProfit struct {
	Year        string  `json:"year"`
	IndexProfit float64 `json:"indexProfit"`
	MaProfit    float64 `json:"maProfit"`
}

// 定义模拟结果结构体，使用正确的字段名和JSON标签
type SimulateResult struct {
	ProfitList                []Profit       `json:"profitList"`       // 修改为camelCase格式
	TradeList                 []Trade        `json:"tradeList"`        // 修改为camelCase格式
	AnnualProfitList          []AnnualProfit `json:"annualProfitList"` // 保持原有格式
	IndexFinalProfitLossRatio float64        `json:"indexFinalProfitLossRatio"`
	MaFinalProfitLossRatio    float64        `json:"maFinalProfitLossRatio"`
	IndexApr                  float64        `json:"indexApr"`
	MaApr                     float64        `json:"maApr"`
	Years                     float64        `json:"years"`
}
